home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 026-050 / scopedisk45 / mffcis / killdups.mffm < prev    next >
Text File  |  1995-03-18  |  2KB  |  68 lines

  1. /* Killdups.mffm */
  2.  
  3. /* Kill cislib duplicates  AND retain latest dated one */
  4. /* if the name and the uploader are the same it is considered a duplicate */
  5.  
  6. select_none
  7. /*
  8.  
  9. /*  BUG. Sort macro command performs an ascending sort regardless
  10.   of preferences setting so this is won't work
  11. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  12. /* sort in descending date order by name */
  13.  
  14. request 'Sort order must be DESCENDING Do you want to quit to change it?'
  15. /* too bad a MMF doesn't let you change prefs. from AREXX */
  16. IF (rc =0) THEN DO
  17.    display 'Use Preferences menu to change sort order to DESCENDING'
  18.    EXIT
  19. END
  20.  
  21. get_form_list forms
  22. DO i = 1 TO forms.number WHILE (forms.i.NAME ~= 'Name & Date'); 
  23.    say forms.i.name
  24. END
  25. forms.SORT = i,
  26. put_form_list forms
  27. sort
  28. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  29.  
  30. /* BUG workaround */
  31.  
  32. request 'Sort order must be DESCENDING Do you want to quit to change it?'
  33. IF (rc =0) THEN DO
  34.    display 'Use Preferences menu to change sort order to DESCENDING'
  35.    EXIT
  36. END
  37. request 'Sort form  must be Name & Date to quit to change it?'
  38. IF (rc =0) THEN DO
  39.    display 'Use Form List to change sort form to Name & Date'
  40.    EXIT
  41. END
  42. /* END OF BUG WORKAROUND */
  43.  
  44. select_all
  45. first
  46. do while (rc = 0)
  47.   rec1.name = rec2.1.value
  48.   rec1.uploader = rec2.4.value
  49.   get rec2  
  50.   IF rec2.1.value = rec1.name THEN
  51.     IF rec2.4.value = rec1.uploader THEN DO
  52.         put nullrec  /* deposit a blank record */
  53.         say rec2.1.value
  54.     END    
  55.  
  56.   next
  57. END
  58.  
  59. /* we've replaced all the duplicates with blanks */
  60. /* now delete all blank records */
  61. */
  62. select_none
  63. sel.1.criterion = '< 0' /* < zero is effictively NO string at all */
  64. select_by_field sel
  65. delete quietly
  66.  
  67. EXIT
  68.